package vn.csp.edu.chuonghai;

import java.io.*;

/**
 * Created by tbloc on 17/09/2014.
 */
public class StreamDemo {
    public static void main(String[] args) {
        //Begin: (*1)
        try {
            OutputStream outputStream = new FileOutputStream("D://data.txt",true);
            outputStream.write("tong bao loc \r\n".getBytes());
            outputStream.write(1001);
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        //End: (*1)

        //Begin: (*2)
        try {
//            Following constructor creates a buffer of 32 byte:
//            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(12);//Tự gán độ lớn của byte
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();//mặc định là 32
            while(byteArrayOutputStream.size() != 2){
                byteArrayOutputStream.write(System.in.read());
                if(System.in.read()==10) continue;// kí tự 10 new line
            }
            byteArrayOutputStream.close();//đóng rồi vẩn đọc được nhé
          //  byteArrayOutputStream.reset();//xóa sạch buffer
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
//            int c; //cách đọc từ byte
//            for(int y = 0 ; y < 1; y++ ) {
//                while(( c= byteArrayInputStream.read())!= -1) {
//                    System.out.println(Character.toUpperCase((char)c));
//                }
//                byteArrayInputStream.reset();
//            }
            //int bytesread số byte đọc được
            //Cách đọc vô bộ nhớ đệm
            byte inBuf[] = new byte[byteArrayInputStream.available()];
            int bytesread= byteArrayInputStream.read(inBuf,0,byteArrayInputStream.available());
            System.out.println("Số byte đọc được là : "+bytesread);
            System.out.println(new String(inBuf));

        } catch (Exception e) {
            e.printStackTrace();
        }
        //End: (*2)
        try{
            PrintStream s = System.out;
            s.print('s');
        }
        catch (Exception ex){
            ex.printStackTrace();
        }
    }
}
